home *** CD-ROM | disk | FTP | other *** search
/ Programming Sound Cards / Programming Sound Cards.iso / sound_79 / soundhax.doc < prev    next >
Text File  |  1995-01-01  |  10KB  |  246 lines

  1. SOUNDHAX   v1  by John M. Trindle
  2.  
  3. Synopsis:  Utilities and source code for use with Sound Blaster,
  4.            Sound Blaster Pro, and ProAudio Spectrum.  REC_CD
  5.            may be of interest to anyone with an audio-capable
  6.            CD-ROM drive.
  7.       
  8.            PLAYD:    .VOC file player, direct to disk.
  9.            RECD:     .VOC file recorder, direct to disk.
  10.            REC_CD:   Play and record to .VOC sections of CD audio.
  11.  
  12.            TALK:     Hear and see the phonetic version of text
  13.                      run through SBTALK
  14.  
  15.            EXCEPT:   Manage an exception dictionary for SBTALK
  16.                      pronounciation.
  17.  
  18.  
  19. Disclaimer:
  20.            These programs are hacks, without reference to the proper
  21.            documentation.  None are guaranteed to run at all on
  22.            your particular system.  The worst case example is REC_CD,
  23.            which has only been tested under a beta copy of SB2MV, the
  24.            Sound Blaster *EMULATOR* for the ProAudio Spectrum.  I have
  25.            spent almost zero time on the user interface... you see
  26.            the small bits of knowledge as I gleaned them.
  27.  
  28.  
  29. Self-Pitying Indulgence:
  30.  
  31.            These hacks reflect my tortuous journey through the realm
  32.            of sound card programming (so far).  It has been very
  33.            difficult to get customer and technical support for either
  34.            the Sound Blaster, SB-PRO, or the ProAudio Spectrum cards.
  35.            As an amateur musician and simulator programmer, I find 
  36.            the potential of these cards fascinating.  But the software
  37.            is in its infancy.  Perhaps the source code included will
  38.            form a basis for *REAL* software.
  39.  
  40.  
  41. So what's it all about, Alfie?
  42.  
  43.       OK, here goes.
  44.  
  45.    >>DIGITAL SOUND<<
  46.  
  47. PLAYD.EXE:  PLAYD <filename.voc>
  48.  
  49.             This program will play a Sound Blaster .VOC file from
  50.             disk, at the recorded sampling rate.  It illustrates
  51.             the setup and detection.  If you do not use the
  52.             DriverFeatures variable on a machine without an SB
  53.             compatible environment, you WILL lock it up.
  54.  
  55.             There are a bazillion .VOC players out there, but no
  56.             source code that use the standard Creative Music library
  57.             that I can find.
  58.             >> LATTICE C <<
  59.       
  60.             PLAYD MKMYDAY.VOC
  61.  
  62.  
  63. RECD.EXE:   RECD <filename.voc>
  64.  
  65.             This is the recording side of the CTVD system.  Note
  66.             the similarities to the play side, and the relative
  67.             simplicity of the whole shebang.  It only records
  68.             at the default sampling rate.
  69.             >> LATTICE C <<
  70.  
  71.             RECD METALKING.VOC
  72.  
  73.  
  74. REC_CD.EXE: REC_CD [TRACK] [START] [END] [FILENAME]
  75.  
  76.             Ah, the crux of the biscuit indeed.  This is an
  77.             incredibly messy but somewhat interesting combination
  78.             of MSCDEX and Sound Blaster code.  This program has
  79.             several functions:
  80.  
  81.             1) No parameters.  Lists the track numbers and
  82.                approximate durations of each.
  83.  
  84.             2) With Track number.  Plays audio CD from the
  85.                beginning of that track to the end of the disk.
  86.  
  87.             3) With Track and Start.  Plays audio CD from the
  88.                MM:SS.S offset in the Track to the end.
  89.  
  90.             4) Track, Start, End.  Plays audio CD from Track
  91.                with offset Start to offset End (MM:SS.S).  Note that
  92.                this can overlap into the next track.
  93.  
  94.             5) Track, Start, End, Filename.  This plays the segment
  95.                selected above, AND RECORDS a monophonic .VOC file
  96.                at the default sampling rate.  You must hit a key
  97.                to terminate recording, even though the CD has stopped
  98.                playing.  This is very nice on the MPC boards such as
  99.                the SB-PRO and the ProAudio Spectrum.
  100.  
  101.             Offsets are in Minutes and Decimal Seconds, to the
  102.             nearest 1/75th of a second (a CD *frame*).
  103.  
  104.  
  105.  
  106.          The intent of this program is to facilitate transfer of
  107.          sounds from Sound Effects Disks, and instrument slices
  108.          for fine programs such as TRAKBLASTER.  I also wanted to
  109.          read the 16 bit data directly, to use as source material
  110.          for off-line signal processing experiments.  Alas, that
  111.          ability appears to be locked out of most CD-ROM players.
  112.         
  113.          It is NOT my intent that you use this to infringe on
  114.          copyrights.  Any clips which diminish the commercial value
  115.          of the source material are expressly prohibited by law.
  116.          Besides, the quality of eight-bit sampling is sufficiently
  117.          low, and the disk consumption prohibitive for piracy purposes.
  118.          But remember, neither I nor Larry "Bud" Melman are lawyers.
  119.          >> LATTICE C <<
  120.  
  121.  
  122.    >>TEXT-TO-SPEECH<<
  123.  
  124. EXCEPT.EXE:
  125.  
  126.          This program shows how the sbts_dict_add and sbts_dict_del
  127.          commands work.  It is part of my project to improve the
  128.          pronounciation of SBTALK.  A sample dictionary generated
  129.          from a word list with TALK.EXE is included.  This is
  130.          a very rudimentary utility to manage a source and an
  131.          exception dictionary.  A companion utility would be one
  132.          that would read the exception dictionary into SBTALK.  You
  133.          can do this just by using sbts_dict_add as shown here but
  134.          not deleting the word before program exit.  The dictionary
  135.          for SBTALK is best stored in EMS memory.
  136.          >> TURBO C<
  137.  
  138. TALK.EXE
  139.          This program will take a line from Standard Input,
  140.          say it, and print the line and the SBTALK phonetic equivalent
  141.          to Standard Output.  Thus it can be used as a filter.  It
  142.          shows the use of the GENDER, TONE, VOLUME, PITCH and SPEED
  143.          parameters.  GENDER has no effect in the SBTALK which I used.
  144.          >> TURBO C <<
  145.  
  146.  
  147. Development Environment:
  148.  
  149.    Hardware:  486-33, Seagate IDE drives, Chinon 431 CD-ROM, Lantastic
  150.               network, Sound Blaster (initially) and ProAudio Spectrum
  151.               (subsequently).
  152.  
  153.    Software:  Lattice C 6.05, SBCL.LIB, source for CDPLAYER and
  154.               CD.GL (an amazingly powerfule GRASP script).  QEMM 5.11
  155.               and Windows 3.0.
  156.  
  157.  
  158.  
  159. Notes:
  160.  
  161. Our default mode for Lattice C does *not* add underscores to the
  162. front of variable and function names.  In order to link Microsoft C
  163. or Turbo C programs with SBCL.LIB, you will need to remove those
  164. leading underscores from these examples.
  165.  
  166. SBCL.LIB is available on most sound-oriented BBSs, including Creative
  167. Music Labs' own support board.  You will also want to pick up a copy
  168. of the SBQC.LIB (the Quick Basic library) since it has include files,
  169. whereas the C version does not.  If you want docs, you have to call
  170. Brown-Wagh publishing, wade through a few days of phone tag to get
  171. a *salesman*, and then pay $70 to $100 depending on their mood and the
  172. day of the week.  I am still waiting for them to SHIP the development
  173. kit I ordered 6 weeks ago.  However, there are many functions in
  174. the SBCL that I have not puzzled out, and I wouldn't ship commercial
  175. software based on my hacks.  So here I wait, twiddling my bits.
  176.  
  177. Some documentation for MSCDEX is available on Compuserve in the
  178. Microsoft Library.  Of course, MS will also sell you a proper
  179. development package.
  180.  
  181. The file CDPLAYER.ARC contains much cleaner source than mine, and
  182. has additional functions for doing data reads, etc. The header file
  183. is complete with all the needed #defines and typedefs.  HOWEVER,
  184. there is a crucial module missing:  SEND.ASM, which is the actual
  185. interface to the 2FH multiplex interrupt.
  186.  
  187. CDSRC.ARC doesn't look like much when you V)iew it on a BBS.  But
  188. that .GL script file contained the info I needed to reconstruct
  189. the missing SEND.ASM functionality.  It is not exactly a text file,
  190. so your editor may have troubles with it.  Unfortunately, the program
  191. itself is somewhat buggy.  I was very impressed by the power of the
  192. Grasp language, even though it looks a little too much like BASIC
  193. for my tastes.  REC_CD's CD code is largely based on this script
  194. as well as CDPLAYER.
  195.  
  196. SB2MV is a Sound Blaster Emulator for the ProAudio Spectrum.  It works
  197. remarkably well for what it does (meaning it crashes a lot).  I am still
  198. using the .87 beta, I believe.  The DIGITAL software runs fine under
  199. SB2MV, though it seems slightly more stable in the Windows 3.0 version
  200. of the driver. SBTALK will not run for long under this emulator.
  201.  
  202. Recording or playings samples on floppies leads to trouble.
  203.  
  204. SBTALK will crash occasionally no matter what you do, but it likes
  205. EMS better (plus you don't get a 170K+ hit on conventional memory).
  206.  
  207.  
  208. ====================================================================
  209.  
  210. IF YOU LIKE THIS CODE (or the idea behind it) DO ME A FAVOR, OK?
  211.  
  212. 1) Keep my name as the original author.  You know, "based on"
  213.    "influenced by"  "a strong hateful reaction to" SoundHax v1
  214.    by John M. Trindle.
  215.  
  216. 2) Write something good, and preferably free!  The world is in
  217.    desparate need of a freeware/PD *LARGE* sample editor, with
  218.    effects/DSP enhancement algorithms.  A low cost speech recognition
  219.    engine for the Sound Blaster or ProAudio input.  A hardware kit
  220.    to use stereo 8 bit as mono 16 bit.  A good tutorial on programming
  221.    the two-op Adlib-compatible sound.  A methodology for integrating
  222.    sound cues in the user interface in a useful manner.  Another
  223.    *large* (I mean *LARGE*, like 2 meg files) sample editor.  Where
  224.    you can draw waveforms and use them for sequencer voices.  And
  225.    so forth and so on.
  226.  
  227.  
  228. BBSs:
  229.  
  230. Creative Labs: 1-405-624-2601
  231.  
  232. Media Vision:  1-415-770-0968
  233.  
  234.  
  235. You can get me:  Compuserve 70303,3506 (Flight Deck Software)
  236.                  Flight Deck BBS 804-229-1571 (comment to SYSOP)
  237.                  The Blues Exchange 804-220-0533 (E-Music Conference)
  238.             
  239. I am also on Creative Labs' board frequently, and Media Vision's.  
  240. For some reason I am locked out of MV's message bases at the moment,
  241. though.
  242.  
  243.  
  244.  
  245. ....John M. Trindle  Williamsburg, VA  December 19, 1991
  246.